package com.bifang.common.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
import lombok.Data;

/**
 * 基础审核VO
 *
 * @author chenzh
 * @date 2020-11-6
 */
@Data
public class BaseAuditVO implements Serializable {
    @ApiModelProperty(notes = "登入token", hidden = true)
    private String accessToken;
    /** 路由id */
    @ApiModelProperty(notes = "路由id", hidden = true)
    private String opRouterId;
    /** 功能id */
    @ApiModelProperty(notes = "功能编号", hidden = true)
    private String opFuncId;
    /** 日志id */
    @ApiModelProperty(notes = "日志id", hidden = true)
    @JsonSerialize(using = ToStringSerializer.class)
    private Long opOplogId;
    /** IP地址 */
    @ApiModelProperty(notes = "请求IP地址", hidden = true)
    private String reqIp;

    @ApiModelProperty(value = "业务流水号", required = false)
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal busNo;

    @ApiModelProperty(value = "审核状态 0 未审核 1 审核通过 2 审核不通过", required = true)
    private String authStatus;

    @ApiModelProperty(value = "审核说明", required = true)
    public String authRemarks;

    @ApiModelProperty(value = "审核人", required = false)
    private String authUserId;

    @ApiModelProperty(value = "审核时间", required = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date authTime;

    @ApiModelProperty(value = "工作流中流程类型")
    private String auType;

    @ApiModelProperty(value = "流程中判断条件变量", hidden = true)
    private Map<String, Object> workflowParams;

    @ApiModelProperty(value = "节点实例id")
    private String taskId;

    @ApiModelProperty(value = "节点id")
    private String actId;

    @ApiModelProperty(value = "流程节点名称")
    private String actName;

    @ApiModelProperty(value = "当前签收人id")
    private String curAssigneeId;

    @ApiModelProperty(value = "当前签收人类型 1个人 2组织")
    private String curAssigneeType;

    @ApiModelProperty(value = "当前签收人用户id")
    private String curAssigneeUserId;

    @ApiModelProperty(value = "是否自动审核 0 否 1 是")
    private String automaticFlag;

    @ApiModelProperty(value = "表单key")
    private String formKey;

    @ApiModelProperty(value = "流程节点定义参数id")
    private String flowNodeId;

    @ApiModelProperty(value = "任务实例id")
    private String executionId;

    @ApiModelProperty(value = "流程定义id")
    private String procDefId;

    @ApiModelProperty(value = "流程实例id")
    private String procInstId;

    @ApiModelProperty(value = "申请人类型")
    private String applicantType;

    @ApiModelProperty(value = "申请人id")
    private String applicantId;

    @ApiModelProperty(value = "申请人名称")
    private String applicantName;

    @ApiModelProperty(value = "审批意见类型")
    private String commentType;

    @ApiModelProperty(value = "驳回日志id")
    private String backToOplogId;

    @ApiModelProperty(value = "审核流转组织id")
    private String auOrgId;

    @ApiModelProperty(value = "审核流转人员id")
    private String auUserId;

    @ApiModelProperty(value = "审核流转角色id")
    private String auRoleId;

    @ApiModelProperty(value = "审核流转角色id")
    private String auGroupId;

    @ApiModelProperty(value = "报表列表")
    private List<ReportVO> reportList;
}
